/*
 * Desenvolvido para a disciplina Desenvolvimento de Aplicações Web.
 * Curso Tecnologia em Telematica.
 * Instituto Federal de Educação, Ciência e Tecnologia.
 */

package sql;

import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

/**
 * SAW - Sistema Academica Web.
 * Classe que determina a comunicação com o Banco de Dados em relacionamento Aluno. 
 *
 * @author Antonio Carlos Trajano de Oliveira, antonio.c.trajano@gmail.com
 * @author Icaro Vasconcelos, icaroswim@gmail.com
 * @version 1.0
 */
public class AlunoBD {
	
	private Statement st;
	
	/**
	 *  Constru
	 * @param st
	 */
	public AlunoBD( Statement st ) {
		this.st = st;
	}
	
	/**
	 *  
	 * @param nome
	 * @param matricula
	 * @throws AlunoBDException
	 */
	public void add( String nome, String matricula ) throws AlunoBDException {
		String query = "INSERT INTO aluno ( id, nome, matricula, id_curso1, id_curso2, id_curso3 )" +
		"VALUES ( NULL, '" + nome + "', '" + matricula + "', NULL, NULL, NULL );";
		ResultSet rs;
		try {
			if( hasAluno(nome, matricula) ) {
				throw new AlunoBDException( "Não pode adicionar: Já existente." );
			}
			rs = st.executeQuery( query );
		} catch( SQLException e ) {
			throw new AlunoBDException( "Erro de sintaxe no comando SQL:\n" + e );
		}
	}
	
	private boolean hasAluno( String nome, String matricula ) throws AlunoBDException {
		String query = "SELECT id FROM aluno WHERE STRCMP( nome, '" + nome + "' ) = 0 " +
		"AND STRCMP( matricula, '" + matricula + "' ) = 0 ;";
		ResultSet rs;
		try {
			rs = st.executeQuery( query );
			if( rs.next() ) {
				if( rs.getInt( "id" ) > 0 ) {
					return true;
				} else {
					return false;
				}
			} else {
				throw new AlunoBDException( "Cursor não pode ser iniciado." );
			}
		} catch( SQLException e ) {
			throw new AlunoBDException( "Erro de sintaxe no comando SQL:\n" + e );
		}
	}

}
